diff --git a/arch/arm/include/asm/arch-davinci/da8xx-fb.h b/arch/arm/include/asm/arch-davinci/da8xx-fb.h
index 6d2327c..a9181d8 100644
--- a/arch/arm/include/asm/arch-davinci/da8xx-fb.h
+++ b/arch/arm/include/asm/arch-davinci/da8xx-fb.h
@@ -123,4 +123,3 @@
 void da8xx_video_init(const struct da8xx_panel *panel, int bits_pixel);
 
 #endif  /* ifndef DA8XX_FB_H */
-
diff --git a/arch/sh/lib/ashrsi3.S b/arch/sh/lib/ashrsi3.S
index 6f3cf46..2d68b27 100644
--- a/arch/sh/lib/ashrsi3.S
+++ b/arch/sh/lib/ashrsi3.S
@@ -56,7 +56,7 @@
 !
 
 	.global	__ashrsi3
-	
+
 	.align	2
 __ashrsi3:
 	mov	#31,r0
diff --git a/doc/README.menu b/doc/README.menu
index 1259c6a..0dad6a2 100644
--- a/doc/README.menu
+++ b/doc/README.menu
@@ -97,7 +97,7 @@
 			printf("failed to add item!");
 			menu_destroy(m);
 			return NULL;
-                }
+		}
 	}
 
 	if (menu_get_choice(m, (void **)&tool) != 1)
diff --git a/doc/README.p3060qds b/doc/README.p3060qds
index 2ed49ca..ec62798 100644
--- a/doc/README.p3060qds
+++ b/doc/README.p3060qds
@@ -43,7 +43,7 @@
  * I2C1_CH0: EEPROM AT24C64(0x50) RCW, AT24C02(0x51) DDR SPD,
 	     AT24C02(0x53) DDR SPD, AT24C02(0x57) SystemID, RTC DS3232(0x68)
  * I2C1_CH1: 1588 RiserCard(0x55), HSLB Testport, TempMon
-             ADT7461(0x4C), SerDesMux DS64MB201(0x51/59/5C/5D)
+	     ADT7461(0x4C), SerDesMux DS64MB201(0x51/59/5C/5D)
  * I2C1_CH2: VDD/GVDD/GIDD ZL6100 (0x21/0x22/0x23/0x24/0x40)
  * I2C1_CH3: OCM CFG AT24C02(0x55), OCM IPL AT24C64(0x56)
  * I2C1_CH4: PCIe SLOT1
@@ -108,4 +108,3 @@
 	tftp 2000000 rootfs.ext2.gz.uboot
 	tftp 3000000 p3060rdb.dtb
 	bootm 1000000 2000000 3000000
-
diff --git a/doc/README.pxe b/doc/README.pxe
index 9026d9c..95cd9b9 100644
--- a/doc/README.pxe
+++ b/doc/README.pxe
@@ -115,50 +115,50 @@
 -------------------------
 Unrecognized commands are ignored.
 
-default <label>     - the label named here is treated as the default and is
-                      the first label 'pxe boot' attempts to boot.
+default <label>	    - the label named here is treated as the default and is
+		      the first label 'pxe boot' attempts to boot.
 
 menu title <string> - sets a title for the menu of labels being displayed.
 
 menu include <path> - use tftp to retrieve the pxe file at <path>, which
-                      is then immediately parsed as if the start of its
-                      contents were the next line in the current file. nesting
-                      of include up to 16 files deep is supported.
+		      is then immediately parsed as if the start of its
+		      contents were the next line in the current file. nesting
+		      of include up to 16 files deep is supported.
 
-prompt <flag>       - if 1, always prompt the user to enter a label to boot
-                      from. if 0, only prompt the user if timeout expires.
+prompt <flag>	    - if 1, always prompt the user to enter a label to boot
+		      from. if 0, only prompt the user if timeout expires.
 
 timeout <num>	    - wait for user input for <num>/10 seconds before
-                      auto-booting a node.
+		      auto-booting a node.
 
-label <name>        - begin a label definition. labels continue until
-                      a command not recognized as a label command is seen,
-                      or EOF is reached.
+label <name>	    - begin a label definition. labels continue until
+		      a command not recognized as a label command is seen,
+		      or EOF is reached.
 
 Supported label commands
 ------------------------
 labels end when a command not recognized as a label command is reached, or EOF.
 
-menu default        - set this label as the default label to boot; this is
-                      the same behavior as the global default command but
-                      specified in a different way
+menu default	    - set this label as the default label to boot; this is
+		      the same behavior as the global default command but
+		      specified in a different way
 
-kernel <path>       - if this label is chosen, use tftp to retrieve the kernel
-                      at <path>. it will be stored at the address indicated in
-                      the kernel_addr_r environment variable, and that address
-                      will be passed to bootm to boot this kernel.
+kernel <path>	    - if this label is chosen, use tftp to retrieve the kernel
+		      at <path>. it will be stored at the address indicated in
+		      the kernel_addr_r environment variable, and that address
+		      will be passed to bootm to boot this kernel.
 
-append <string>     - use <string> as the kernel command line when booting this
-                      label.
+append <string>	    - use <string> as the kernel command line when booting this
+		      label.
 
-initrd <path>       - if this label is chosen, use tftp to retrieve the initrd
-                      at <path>. it will be stored at the address indicated in
-                      the initrd_addr_r environment variable, and that address
-                      will be passed to bootm.
+initrd <path>	    - if this label is chosen, use tftp to retrieve the initrd
+		      at <path>. it will be stored at the address indicated in
+		      the initrd_addr_r environment variable, and that address
+		      will be passed to bootm.
 
 localboot <flag>    - Run the command defined by "localcmd" in the environment.
-                      <flag> is ignored and is only here to match the syntax of
-                      PXELINUX config files.
+		      <flag> is ignored and is only here to match the syntax of
+		      PXELINUX config files.
 
 Example
 -------
@@ -217,7 +217,7 @@
 
 - U-boot's pxe doesn't provide the full menu implementation that PXELINUX
   does, only a simple text based menu using the commands described in
-  this README.  With PXELINUX, it's possible to have a graphical boot
+  this README.	With PXELINUX, it's possible to have a graphical boot
   menu, submenus, passwords, etc. U-boot's pxe could be extended to support
   a more robust menuing system like that of PXELINUX's.
 
diff --git a/doc/README.sh7757lcr b/doc/README.sh7757lcr
index 109f715..37c1a7a 100644
--- a/doc/README.sh7757lcr
+++ b/doc/README.sh7757lcr
@@ -67,11 +67,10 @@
 ============================
 
 1. Copy u-boot image to RAM area.
-2. Probe SPI device. 
-   => sf probe 0 
+2. Probe SPI device.
+   => sf probe 0
    8192 KiB M25P64 at 0:0 is now current device
 3. Erase SPI ROM.
-   => sf erase 0 80000  
+   => sf erase 0 80000
 4. Write u-boot image to SPI ROM.
    => sf write 0x89000000 0 80000
-
diff --git a/drivers/net/sh_eth.h b/drivers/net/sh_eth.h
index dd6a422..0692f8b 100644
--- a/drivers/net/sh_eth.h
+++ b/drivers/net/sh_eth.h
@@ -435,4 +435,3 @@
 enum FIFO_SIZE_BIT {
 	FIFO_SIZE_T = 0x00000700, FIFO_SIZE_R = 0x00000007,
 };
-
diff --git a/drivers/usb/host/ehci-mx5.c b/drivers/usb/host/ehci-mx5.c
index 68a673e..58cdcbe 100644
--- a/drivers/usb/host/ehci-mx5.c
+++ b/drivers/usb/host/ehci-mx5.c
@@ -251,5 +251,3 @@
 {
 	return 0;
 }
-
-
diff --git a/include/configs/P2020COME.h b/include/configs/P2020COME.h
index db88b68..cf20d2b 100644
--- a/include/configs/P2020COME.h
+++ b/include/configs/P2020COME.h
@@ -103,12 +103,6 @@
 #define CONFIG_SYS_MEMTEST_END		0x1fffffff
 #define CONFIG_PANIC_HANG	/* do not reset board on panic */
 
-
-
-
-
-
-
  /*
   * Config the L2 Cache as L2 SRAM
   */
@@ -316,7 +310,6 @@
 #define _IO_BASE		0x00000000
 #endif
 
-
 #define CONFIG_PCI_SCAN_SHOW		/* show pci devices on startup */
 #define CONFIG_DOS_PARTITION
 
@@ -563,6 +556,7 @@
 	"tftp $fdtaddr $tftppath/$fdtfile;"				\
 	"bootm $loadaddr - $fdtaddr"
 
+
 #define CONFIG_RAMBOOTCOMMAND						\
 	"setenv bootargs root=/dev/ram rw "				\
 	"console=$consoledev,$baudrate $othbootargs;"			\
